package br.com.mrh.entity;

/**
 * Representa um <b>Perfil x Tela</b>
 * @author 	alex.paula
 * @since  	16/02/2012
 * @version 1.0
 */
public class PerfilTela implements IBaseEntidade {
	
	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * Codigo do Perfil x Tela
	 */
	private Integer		idPerfilTela;
	
	/**
	 * Codigo do Perfil
	 */
	private Integer		idPerfil;
	
	/**
	 * Perfil do Perfil x Tela
	 */
	private Perfil		perfil;
	
	/**
	 * Codigo da Tela
	 */
	private Integer		idTela;
	
	/**
	 * Tela do Perfil x Tela
	 */
	private Tela		tela;
	
	/**
	 * Indica a Tela ativa no Perfil
	 */
	private Boolean		inAtivo;
	
	@Override
	public Integer getId() {
		return idPerfilTela;
	}

	public Integer getIdPerfilTela() {
		return idPerfilTela;
	}

	public void setIdPerfilTela(Integer idPerfilTela) {
		this.idPerfilTela = idPerfilTela;
	}

	public Integer getIdPerfil() {
		return idPerfil;
	}

	public void setIdPerfil(Integer idPerfil) {
		this.idPerfil = idPerfil;
	}

	public Perfil getPerfil() {
		return perfil;
	}

	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
		setIdPerfil(perfil.getId());
	}

	public Integer getIdTela() {
		return idTela;
	}

	public void setIdTela(Integer idTela) {
		this.idTela = idTela;
	}

	public Tela getTela() {
		return tela;
	}

	public void setTela(Tela tela) {
		this.tela = tela;
		setIdTela(tela.getId());
	}

	public Boolean getInAtivo() {
		return inAtivo;
	}

	public void setInAtivo(Boolean inAtivo) {
		this.inAtivo = inAtivo;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((idPerfil == null) ? 0 : idPerfil.hashCode());
		result = prime * result
				+ ((idPerfilTela == null) ? 0 : idPerfilTela.hashCode());
		result = prime * result + ((idTela == null) ? 0 : idTela.hashCode());
		result = prime * result + ((inAtivo == null) ? 0 : inAtivo.hashCode());
		result = prime * result + ((perfil == null) ? 0 : perfil.hashCode());
		result = prime * result + ((tela == null) ? 0 : tela.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		PerfilTela other = (PerfilTela) obj;
		if (idPerfil == null) {
			if (other.idPerfil != null)
				return false;
		} else if (!idPerfil.equals(other.idPerfil))
			return false;
		if (idPerfilTela == null) {
			if (other.idPerfilTela != null)
				return false;
		} else if (!idPerfilTela.equals(other.idPerfilTela))
			return false;
		if (idTela == null) {
			if (other.idTela != null)
				return false;
		} else if (!idTela.equals(other.idTela))
			return false;
		if (inAtivo == null) {
			if (other.inAtivo != null)
				return false;
		} else if (!inAtivo.equals(other.inAtivo))
			return false;
		if (perfil == null) {
			if (other.perfil != null)
				return false;
		} else if (!perfil.equals(other.perfil))
			return false;
		if (tela == null) {
			if (other.tela != null)
				return false;
		} else if (!tela.equals(other.tela))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "PerfilTela [idPerfilTela=" + idPerfilTela + ", idPerfil="
				+ idPerfil + ", idTela=" + idTela + ", inAtivo=" + inAtivo
				+ "]";
	}

}
